<?php
/* 
*   自定义助手类
*   hyang@2016年9月21日 星期三
*/
namespace traits\brximl;

use think\Session;
trait brx{
    public $setting;//  来自conf.php 自定义的常量

    //  激活 brx 对象
    public function brxStart(){
        //  激活自定义配置文件
        
        if(empty($this->setting))$this->setting = brximl_conf();
        $config = $this->setting;
        /***
        //  自动模块加载文件
        $dir = APP_PATH.request()->module().'/common/';
        if(isset($config['_auto_common_']) && is_array($config['_auto_common_'])){
            foreach($config['_auto_common_'] as $v){
                $file = $dir.$v.'.php';
                if(is_file($file)) require_once($file);
            }
        }
        ***/
    }
    // 获取自定义的配置文件的值
    public function brxVar($key=null)
    {
        if($key && is_string($key)) $key = strtolower($key); 
        $config = $this->setting;
        if(empty($config)){
            $config = brximl_conf();
            $this->setting = $config;
        }
        if($key && array_key_exists($key,$config)) return $config[$key];
        return '';
    }
    //  加载前端工具 2016年9月21日 星期三
    public function loadScript($opt,$feek=false){
        //  未加载到 view对象时无效
        if(!method_exists($this,'assign')) return false;
        //  标题
        if(isset($opt['title'])){
            $this->assign('head_title',$opt['title']);
        }
        $script = '';
        //  js
        if(isset($opt['js']) && $opt['js']){
            $dir = $this->brxVar('_js_').request()->module().'/';
            $js = is_array($opt['js'])? $opt['js']:array($opt['js']);
            foreach($js as $v){
                $script .= '<script src="'.$dir.$v.'.js"></script>';
            }            
        }
        //  css
        if(isset($opt['css']) && $opt['css']){
            $dir = $this->brxVar('_css_').request()->module().'/';
            $js = is_array($opt['css'])? $opt['css']:array($opt['css']);
            foreach($js as $v){
                $script .= '<link rel="stylesheet" href="'.$dir.$v.'.css" />';
            }            
        }
        if($script){
            if($feek) return $script;//生成 HTML
            $this->assign('head_script',$script);
        }
        // headplus
        if(isset($opt['more']) && $opt['more']) $this->assign('head_more',$opt['more']);
    }
    //  前端框架
    public function useFrontFk($name=null){
        $xhtml = '';
        if(empty($name)) $name = 'bootstrap';
        else $name = strtolower($name);
        if($name == 'bootstrap') $xhtml = '
                <link rel="stylesheet" href="/TeCenter/public/bootstrap/css/bootstrap.min.css">
                <link rel="stylesheet" href="/TeCenter/public/bootstrap/css/bootstrap-theme.min.css">
                <script src="/TeCenter/public/bootstrap/js/bootstrap.min.js"></script>
            ';
        elseif($name == 'jquery-ui') $xhtml = '
            <link rel="stylesheet" href="/TeCenter/Public/jquery-ui/jquery-ui.theme.min.css" />
            <link rel="stylesheet" href="/TeCenter/Public/jquery-ui/jquery-ui.structure.min.css" />
            <link rel="stylesheet" href="/TeCenter/Public/jquery-ui/jquery-ui.min.css" />
            <script src="/TeCenter/Public/jquery-ui/jquery-ui.min.js"></script>
        ';
        if($xhtml) $this->assign('web_framework',$xhtml);
    }
    //  同一域名下不同端口动态生成 url 
    public function dyUrl($cls,$url=null){
        $hurl = $this->brxVar('http').request()->ip().$this->brxVar($cls);
        if($url) $hurl .= $url;
        return $hurl;
    }
    //  获取用户登录状态
    public function infoUser($key=null){
        if(empty($_SESSION))
            Session::init();// 启动 session
        $data = isset($_SESSION['infoUser'])? $_SESSION['infoUser']:array();
        if($key){
            if(array_key_exists($key,$data)) return $data[$key];
            return '';
        }
        return $data;
    }
    // 获取用户权限 $key 为空是检测登录状态
    public function rightInfo($key=null,$feek=false){
        if(empty($key)){
            $data = $this->infoUser();
            if($feek){
                return $data? true:false;// 登录状态
            }
            else if(empty($data)){
                $this->redirect('index/Error/index', ['code' => 'unlogined']);
            }            
        }
    }
    // 分页工具
    public function getPageBar($page=1,$count,$num=20,$type=null){
        return getPageBar($page,$count,$num,$type);      
    }
    
}